
Outils nécessaires :
- Soft-Ice
- W32Dasm
- Un éditeur hexadécimal
- La calculatrice Windows en mode scientifique :)
- Un cerveau pour réfléchir !
- Le soft : AceDesign Pro 1, disponible sur http://www.visic.com
Préambule :
Chaque nouvelle version, chaque nouveau soft qui sort chez Visicom Média est
intéressant à cracker :) Mais depuis quelques temps, les protections manquaient
un peu de nouveautés ! Celle de WebExpert 4, 5, FTP Expert 1, 2 étaient toutes
basées sur le même principe ! Je suis donc parti en me disant : un nouveau truc
à cracker de cette société : y'en à pour deux secondes, comme d'hab' ! Lol !
Mais quelle ne fut pas ma surprise lorsque je découvris que ce n'était pas ce
que j'avais prévu ! Chouette, on va bien s'amuser : il y a une protection par
Serial, avec un Trial de 50 utilisations, puis un check qui vérifie si l'exe
est inchangé...enfin, des petits trucs sympas quoi :) Place à l'exposé !
Partie 1 : repérage !
On lance le soft, on va dans "Aide"->"Entrer les infos d'enregistrement".
On tape alors n'importe quoi dans les 4 champs qui sont présents : j'ai mis
FFF, FFF, FFF, et 789-456-123...
On clique sur Ok, et BOUM : le soft nous répond : "Code Invalide, blablabla,
blablabla !"
On commence en cherchant dans les strings data refs le message "Code Invalide"
mais il s'avère qu'on ne le trouve pas !
Alors, comment faire ?
Il faut remarquer que pendant un court instant en haut du Splash Screen de démarrage
s'inscrivait "Version Non Enregistrée"...Cool...il n'y a plus qu'à tracer !
Partie 2 : action !
On charge le soft dans le Symbol Loader, et on clique sur les engrenages : on
trace, on trace, longtemps, très longtemps, trop longtemps ;))...et finalement,
on arrive en 564BAE, un call, suivi en 564BB3 d'un jne vers 564c13...On continue,
et finalement, en traçant encore un peu on s'aperçoit que le message s'affiche...
On va donc tenter de patcher le saut qui succède au call en 564c13 (163FBh)
: il ne faut pas qu'il saute, on le remplace donc par : 9090 (deux nop, pour
n'effectuer aucune opération !)
On relance, et hop, plus de splash, plus de sous-menu pour s'enregistrer dans
le menu "Aide" : le soft est bel et bien cracké !!!!
VICTOIRE ! Et bien...pas tout à fait...
Partie 3 : Désillusion ;) !
On programme donc un petit crack, avec une intégration des clés nécessaires
dans la Base de registre (voir la conclusion pour la raison), on teste, c'est
bon, ça fonctionne ! On avance l'horloge de 1 an, pour vérifier que tout est
OK, et apparemment, tout va bien...
Pour terminer, on crée une nouvelle image, pour tester le soft, et au bout de
quelques secondes, on se prend un joli nag-screen en pleine face : "Les fichiers
du programme sont corrompus blablabla !". AHHHHHHHHHHHHHHHHHHHHHHHHHHHHH !!!!!
Saleté de Checksum ;)
Bon, on repart encore un petit peu alors : bpx ShowWindow et on continue ! On
relance le soft, une fois lancé, on active le bpx ShowWindow sous Soft-Ice,
et on attend quelques instants, et là : POUF, Soft-Ice surgit à nouveau. C'est
bon, on fait une bonne dizaine de F12 jusqu'à trouver un truc intéressant (à
chaque F12, on monte un peu dans le code avec CTRL+HAUT pour voir comment on
a fait pour atterrir ici) et on arrive finalement en 45711E à un je 45712A,
précédé d'une comparaison cmp word ptr [eax+2E], 0000...
Super, et bien, on va force le saut avec un jmp 45712A en 45711E, et le tour
sera joué !
On teste, ça y est, cette fois, c'est bon, tout fonctionne impecable..................enfin,
presque ! :#p !!!!!!!
Partie 4 : Désillusion bis !
Quoi pas fini encore ??? Décidément :) Mais bon, là, je reconnais
que c'est plus subtil, et que quelqu'un qui n'essaierait pas le soft ne s'en
rendrait pas compte !
Par souci de propreté, j'enregistre une image, et je double-clique dessus pour
l'ouvrir directement, et là : je m'aperçois qu'elle ne s'ouvre pas (le soft
se lance, mais l'image ne se charge pas !): et µ%µ£¨£%5#{[#[ !!! (cri du cracker
qui découvre que le soft se fout de lui ;), mais rira bien qui rira le dernier...)
le saut qu'on a patché n'est pas uniquement pour le checksum ! Il faut continuer
à chercher !
On pose un bpx sur 45711E, et on lance, le soft break une fois, on fait F5 pour
continuer l'exécution, puis on attend un moment (5/6 secondes...) et Soft-Ice
resurgît (hors de la nuit...lol!) ! A chaque fois quelques lignes en dessous
de ce jz, on voit un call [EBX+2c], il est donc indéterminé (changeant), mais
après recherche (en traçant avec F8), on atterrit dans 2 calls différents pour
chaque break...
La deuxième fois que Soft-Ice intervient, alors on trace jusqu'à ce call, et
on entre... On arrive alors en 56CF14...c'est ce call qui appelle le nag...nous
allons faire simple ! On va juste rajouter une instruction ret (C3) une fois
entrée dans ce call, avant qu'une instruction soit exécutée, ainsi, le soft
continuera gaiement son activité !!!
On se place donc en 56CF14 (16C314h) et on corrige en C390 (C3 pour l'instruction
ret, et 90 pour rééquilibrer !) avec un éditeur hexadécimal...et le tour est
joué, pour de bon cette fois-ci !
Partie 5 : vérification !
On enregistre, on lance le soft : ça marche !
on ouvre alors un fichier, en double-cliquant dessus, pour vérifier, et le fichier
s'ouvre !!!! BINGO !!!! Cette fois on a vraiment gagné !
Conclusion :
Merci à Visicom, pour avoir changé de protection, ça permet de ne pas se lasser
:p
P.S. : Je me suis rendu compte après coup que sans avoir essayé de s'enregistrer
une fois, le soft n'est pas cracké, apparemment, il cherche des clés dans la
base de registre qui ne sont pas présentes si aucun essai d'enregistrement n'a
été tenté !
J'espère que vous aurez tout compris ;)
J'attends vos remarques, critiques, suggestions, corrections...
Merci à tous les membres du forum Crff, à toute la team de Fighting-For-Fun
et à tous les actifs de la scène française !
Rebel [FFF]
http://www.fighting-for-fun.fr.st